package com.shm.hello;

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     * 返回最大区域面积
     * @param matrix int整型二维数组 矩形
     * @return int整型
     */
    int m,n;
    int[][] direction ={{1,0},{-1,0},{0,1},{0,-1}};
    public int maxArea (int[][] matrix) {
        // write code here
        if (matrix==null||matrix.length==0){
            return 0;
        }
        m=matrix.length;
        n=matrix[0].length;
        int maxArea = 0;
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                maxArea=Math.max(maxArea,dfs(matrix,i,j));
            }
        }
        return maxArea;
    }

    public int dfs(int[][] matrix,int r,int c){
        if (r<0||c<0||r>=m||c>=n||matrix[r][c]==0){
            return 0;
        }
        int area = matrix[r][c];
        matrix[r][c] = 0;
        for (int[] ints : direction) {
            area +=dfs(matrix,r+ints[0],c+ints[1]);
        }
        return area;
    }
}